From 7e4404f8c66f94ac173a3232712074677415d842 Mon Sep 17 00:00:00 2001 From: Andrew Cooper Date: Thu, 31 Oct 2019 19:38:08 +0000 Subject: [PATCH] x86/pv: Fix !CONFIG_PV build following XSA-299 MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit PTF_* are declared within CONFIG_PV, and used outside: mm.c: In function ‘_put_page_type’: mm.c:2819:32: error: ‘PTF_preemptible’ undeclared (first use in this function) bool preemptible = flags & PTF_preemptible; ^~~~~~~~~~~~~~~ mm.c:2819:32: note: each undeclared identifier is reported only once for each function it appears in mm.c:2842:24: error: ‘PTF_partial_set’ undeclared (first use in this function) if ( !(flags & PTF_partial_set) ) ^~~~~~~~~~~~~~~ mm.c: In function ‘put_page_type_preemptible’: mm.c:3090:33: error: ‘PTF_preemptible’ undeclared (first use in this function) return _put_page_type(page, PTF_preemptible, NULL); ^~~~~~~~~~~~~~~ mm.c: In function ‘put_old_guest_table’: mm.c:3108:25: error: ‘PTF_preemptible’ undeclared (first use in this function) PTF_preemptible | ^~~~~~~~~~~~~~~ mm.c:3110:27: error: ‘PTF_partial_set’ undeclared (first use in this function) PTF_partial_set : 0 ), ^~~~~~~~~~~~~~~ mm.c: In function ‘put_page_type_preemptible’: mm.c:3091:1: error: control reaches end of non-void function [-Werror=return-type] } ^ cc1: all warnings being treated as errors Re-position the definitions to be outside of the #ifdef CONFIG_PV Signed-off-by: Andrew Cooper Reviewed-by: Wei Liu Release-acked-by: Juergen Gross --- xen/arch/x86/mm.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/xen/arch/x86/mm.c b/xen/arch/x86/mm.c index 79c3e4c473..57f22775ac 100644 --- a/xen/arch/x86/mm.c +++ b/xen/arch/x86/mm.c @@ -1063,8 +1063,6 @@ get_page_from_l1e( return -EBUSY; } -#ifdef CONFIG_PV - /* * The following flags are used to specify behavior of various get and * put commands. The first is also stored in page->partial_flags to @@ -1077,6 +1075,8 @@ get_page_from_l1e( #define PTF_defer (1 << 3) #define PTF_retain_ref_on_restart (1 << 4) +#ifdef CONFIG_PV + static int get_page_and_type_from_mfn( mfn_t mfn, unsigned long type, struct domain *d, unsigned int flags) -- 2.30.2